/*************************************************************************
* Copyright (c) 2015 Lemberg Solutions
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**************************************************************************/
package com.ls.demo.demo1;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.ls.widgets.map.MapWidget;
import com.ls.widgets.map.config.OfflineMap;
import com.ls.widgets.map.events.MapTouchedEvent;
import com.ls.widgets.map.interfaces.MapEventsListener;
import com.ls.widgets.map.interfaces.OnMapDoubleTapListener;
import com.ls.widgets.map.model.MapLayer;
import com.ls.widgets.map.model.MapObject;
import com.ls.widgets.map.utils.PivotFactory;
import com.ls.widgets.map.utils.PivotFactory.PivotPosition;
public class Sample1Activity
extends Activity
{
public static final int MAP_ID = 1;
private static final long LAYER_ID = 5;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final int initialZoomLevel = 10;
final MapWidget mapWidget = new MapWidget(savedInstanceState, this, OfflineMap.MAP_ROOT, initialZoomLevel);
mapWidget.setId(MAP_ID);
LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);
layout.addView(mapWidget);
mapWidget.getConfig().setFlingEnabled(true);
mapWidget.getConfig().setPinchZoomEnabled(true);
mapWidget.setMaxZoomLevel(13);
mapWidget.setUseSoftwareZoom(true);
mapWidget.setZoomButtonsVisible(true);
mapWidget.setBackgroundColor(Color.GREEN);
mapWidget.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(Sample1Activity.this, "Long press works!", Toast.LENGTH_SHORT).show();
return true;
}
});
mapWidget.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
return false;
}
});
mapWidget.setOnDoubleTapListener(new OnMapDoubleTapListener() {
@Override
public boolean onDoubleTap(MapWidget v, MapTouchedEvent event) {
Log.d("Sample1Activity", "On double tap");
Toast.makeText(Sample1Activity.this, "Double tap overridden", Toast.LENGTH_SHORT).show();
return true;
}
});
MapLayer layer = mapWidget.createLayer(LAYER_ID);
// getting icon from assets
Drawable icon = getResources().getDrawable(R.drawable.map_icon_attractions);
// define coordinates of icon on map
int x = 240;
int y = 362;
// set ID for the object
final long OBJ_ID = 25;
// adding object to layer
layer.addMapObject(new MapObject(OBJ_ID, icon, new Point(x, y), PivotFactory.createPivotPoint(icon, PivotPosition.PIVOT_CENTER), false, false));
mapWidget.addMapEventsListener(new MapEventsListener() {
@Override
public void onPreZoomOut() {
// TODO Auto-generated method stub
}
@Override
public void onPreZoomIn() {
// TODO Auto-generated method stub
}
@Override
public void onPostZoomOut() {
runOnUiThread(new Runnable() {
@Override
public void run() {
setTitle("Zoom level: " + mapWidget.getZoomLevel());
}
});
}
@Override
public void onPostZoomIn() {
runOnUiThread(new Runnable() {
@Override
public void run() {
setTitle("Zoom level: " + mapWidget.getZoomLevel());
}
});
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
MapWidget map = (MapWidget) findViewById(MAP_ID);
map.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.a1menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
MapWidget map = (MapWidget) findViewById(MAP_ID);
int i = item.getItemId();
if (i == R.id.scrollTo)
{
map.scrollMapTo(new Point(240, 320));
}
else if (i == R.id.jumpTo)
{
map.jumpTo(new Point(240, 320));
}
return super.onOptionsItemSelected(item);
}
}